SQL中MINUS的用法与UNION的用法 |
您所在的位置:网站首页 › sql minus union区别 › SQL中MINUS的用法与UNION的用法 |
一:MINUS指令 其是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL语句的结果中。如果有的话,那第一个SQL结果数据就被去除,而不会在最后的结果中出现。如果第一个 SQL 语句所产生的结果并没有存在于第二个 SQL 语句所产生的结果内,那第一个SQL结果数据就被保留,会在最后的结果中出现。MINUS 的语法如下:[SQL 语句 1]MINUS[SQL 语句 2]举例:Store_Information 表格store_name Sales Date Los Angeles $1500 Jan-05-1999 San Diego $250 Jan-07-1999 Los Angeles $300 Jan-08-1999 Boston $700 Jan-08-1999 Internet Sales 表格 Date Sales Jan-07-1999 $250 Jan-10-1999 $535 Jan-11-1999 $320 Jan-12-1999 $750 我们用以下的 SQL 语句:SELECT Date FROM Store_InformationMINUSSELECT Date FROM Internet_Sales结果:DateJan-05-1999Jan-08-1999 解释:"Jan-05-1999", "Jan-07-1999", and "Jan-08-1999" 是 "SELECT Date FROM Store_Information" 所产生的结果。在这里面,"Jan-07-1999" 是存在于 "SELECT Date FROM Internet_Sales" 所产生的结果中。因此 "Jan-07-1999" 并不在最后的结果中。请注意,在 MINUS 指令下,不同的值只会被列出一次。 与MINUS功能类似的有第一个SELECT 表1.* FROM 表1, 表2WHERE 表1.主键=表2.主键(+) AND 表2.主键 IS NULL;第二个select * from 表1 where not exists(select 1 from 表2 where 表1.主键=表2.主键);第三个select * from 表1 where 表1.主键 not in (select 主键 from 表2);当然效率较高的还是MINUS。 二:UNION 指令 其是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。UNION 的语法如下:[SQL 语句 1]UNION[SQL 语句 2] 举例:表格: Store_Informationstore_name Sales DateLos Angeles $1500 Jan-05-1999San Diego $250 Jan-07-1999Los Angeles $300 Jan-08-1999Boston $700 Jan-08-1999表格: Internet SalesDate SalesJan-07-1999 $250Jan-10-1999 $535Jan-11-1999 $320Jan-12-1999 $750 我们用以下的 SQL 语句:SELECT Date FROM Store_InformationUNIONSELECT Date FROM Internet_Sales结果:DateJan-05-1999Jan-07-1999Jan-08-1999Jan-10-1999Jan-11-1999Jan-12-1999 说明:如果我们在任何一个 SQL 语句 (或是两句都一起) 用 "SELECT DISTINCT Date" 的话,那我们会得到完全一样的结果。名字可以不一样。但是,数据类型必须相似。也就是说主表(第一个表)第一列是varchar(100),副表(第一个以外的所有表)的第一列都要是varchar(100&& |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |